﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ObjectTransposeApi
{
    /// <summary/>
    public class TypeMapper : AbstractMapper
    {
        private Type _destinationType;
        private Type _sourceType;
        private Func<object, object> _converter;

        /// <summary/>
        public TypeMapper(
            Type destinationType,
            Type sourceType,
            Func<object, object> converter)
        {
            this._destinationType = destinationType;
            this._sourceType = sourceType;
            this._converter = converter;
        }

        /// <summary/>
        internal Type DestinationType
        {
            get { return this._destinationType; }
        }

        /// <summary/>
        internal Type SourceType
        {
            get { return this._sourceType; }
        }

        /// <summary/>
        internal Func<object, object> Converter
        {
            get { return this._converter; }
        }
    }
}
